// concurrency.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>

pthread_mutex_t m;

int global = 100;

void *isPrime(void *arg)
{
    while(1)
    {
        // 加锁
        pthread_mutex_lock(&m);

        // 一段朴素的代码
        if(global%2 == 0)
        {
            usleep(10*1000);
            printf("%d是偶数\n", global);
        }

        // 解锁
        pthread_mutex_unlock(&m);
    }
}

int main()
{
    pthread_mutex_init(&m, NULL);

    pthread_t tid;
    pthread_create(&tid, NULL, isPrime, NULL);

    // 一条人畜无害的赋值语句
    while(1)
    {
        // 加锁
        pthread_mutex_lock(&m);

        global = rand() % 5000;

        // 解锁
        pthread_mutex_unlock(&m);
    }
}